package com.oscchina.xushao.adapter;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.oscchina.xushao.R;
import com.oscchina.xushao.bean.Blog;
import com.oscchina.xushao.bean.BlogList;
import com.oscchina.xushao.common.StringUtils;

/**
 * 用户博客Adapter类
 *
 * @author liux (http://my.oschina.net/liux)
 * @version 1.0
 * @created 2012-3-21
 */
public class ListViewBlogAdapter extends BaseAdapter {

    private Context context;// 运行上下文
    private List<Blog> listItems;// 数据集合
    private LayoutInflater listContainer;// 视图容器
    private int itemViewResource;// 自定义项视图源
    private int blogtype;

    // 自定义控件集合
    static class ListItemView {
        public TextView title;
        public TextView author;
        public TextView date;
        public TextView count;
        public ImageView type;
    }

    /**
     * 实例化Adapter
     *
     * @param context
     * @param data
     * @param resource
     */
    public ListViewBlogAdapter(Context context, int blogtype, List<Blog> data, int resource) {
        this.context = context;
        this.listContainer = LayoutInflater.from(context); // 创建视图容器并设置上下文
        this.itemViewResource = resource;
        this.listItems = data;
        this.blogtype = blogtype;
    }

    public int getCount() {
        return listItems.size();
    }

    public Object getItem(int arg0) {
        return null;
    }

    public long getItemId(int arg0) {
        return 0;
    }

    /**
     * ListView Item设置
     */
    public View getView(int position, View convertView, ViewGroup parent) {

        // 自定义视图
        ListItemView listItemView = null;

        if (convertView == null) {
            // 获取list_item布局文件的视图
            convertView = listContainer.inflate(this.itemViewResource, null);

            listItemView = new ListItemView();
            // 获取控件对象
            listItemView.title = (TextView) convertView.findViewById(R.id.blog_listitem_title);
            listItemView.author = (TextView) convertView.findViewById(R.id.blog_listitem_author);
            listItemView.count = (TextView) convertView.findViewById(R.id.blog_listitem_commentCount);
            listItemView.date = (TextView) convertView.findViewById(R.id.blog_listitem_date);
            listItemView.type = (ImageView) convertView.findViewById(R.id.blog_listitem_documentType);

            // 设置控件集到convertView
            convertView.setTag(listItemView);
        } else {
            listItemView = (ListItemView) convertView.getTag();
        }

        // 设置文字和图片
        Blog blog = listItems.get(position);

        listItemView.title.setText(blog.getTitle());
        listItemView.title.setTag(blog);// 设置隐藏参数(实体类)
        listItemView.date.setText(StringUtils.friendly_time(blog.getPubDate()));
        listItemView.count.setText(blog.getCommentCount() + "");
        if (blog.getDocumentType() == Blog.DOC_TYPE_ORIGINAL) {
            listItemView.type.setImageResource(R.drawable.widget_original_icon);
        } else {
            listItemView.type.setImageResource(R.drawable.widget_repaste_icon);
        }
        if (blogtype == BlogList.CATALOG_USER) {
            listItemView.author.setVisibility(View.GONE);
        } else {
            listItemView.author.setText(blog.getAuthor() + "   发表于");
        }
        return convertView;
    }

}